home *** CD-ROM | disk | FTP | other *** search
- /*
- File: KillIO.c
-
- Contains: KillIO dcmd for MacsBug
-
- Written by: Chris Wysocki
-
- Copyright: © 1994 Christopher R. Wysocki. All rights reserved.
-
- Change History (most recent first):
-
- <1> 9/25/94 crw Created from Vol.c
-
- */
-
- #include <Types.h>
- #include <Devices.h>
- #include <Files.h>
- #include <Errors.h>
-
- #include "dcmd.h"
- #include "put.h"
-
- //================================================================================
- // CommandEntry
- //================================================================================
-
- pascal void CommandEntry(dcmdBlock* paramPtr)
- {
- Boolean ok = false;
- long ref;
- ParamBlockRec pb;
- OSErr err;
-
- switch (paramPtr->request)
- {
- case dcmdInit:
- break;
-
- case dcmdHelp:
- dcmdDrawLine("\pKillIO refnum");
- dcmdDrawLine("\p Issues a KillIO call to the driver with the given refnum");
- dcmdDrawLine("\p Chris Wysocki - 25 Sept 1994");
- break;
-
- case dcmdDoIt:
- dcmdSwapWorlds();
-
- (void) dcmdGetNextExpression(&ref, &ok);
-
- if (ok)
- {
- pb.ioParam.ioRefNum = (short) ref;
- err = PBKillIOSync(&pb);
-
- PutPStr("\pKillIO to driver ");
- PutUHexWord(ref);
-
- if (err == noErr)
- PutPStr("\p successful");
- else
- {
- PutPStr("\p returned error ");
- PutUHexWord((short) err);
-
- switch (err)
- {
- case controlErr:
- PutPStr("\p (controlErr)");
- break;
- case badUnitErr:
- PutPStr("\p (badUnitErr)");
- break;
- case unitEmptyErr:
- PutPStr("\p (unitEmptyErr)");
- break;
- case notOpenErr:
- PutPStr("\p (notOpenErr)");
- break;
- }
- }
-
- PutLine();
- }
- else
- dcmdDrawLine("\pSyntax error");
-
- dcmdSwapWorlds();
- break;
-
- default:
- PutPStr("\punknown request ");
- PutUDec(paramPtr->request);
- PutLine();
- break;
- }
- }
-